package com.sikaryofficial.backend.domain.vo.export;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.converters.date.DateStringConverter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

import static com.sikaryofficial.backend.constant.ProductConstant.CONTENT_ROW_HEIGHT;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ExcelIgnoreUnannotated
@ContentRowHeight(CONTENT_ROW_HEIGHT)
public class ActivityExportVO {
    /**
     * 产品ID
     */
    @ExcelIgnore
    private Long activityId;

    /**
     * 序号
     */
    @ColumnWidth(16)
    @ExcelProperty(value = "序号", index = 0)
    private Integer seqNo;

    @ColumnWidth(16)
    @ExcelProperty(value = "活动平台", index = 1)
    private String brandPlatform;

    /**
     * 活动名称
     */
    @ColumnWidth(16)
    @ExcelProperty(value = "活动名称", index = 2)
    private String activityName;

    /**
     * 奖品品牌
     */
    @ColumnWidth(16)
    @ExcelProperty(value = "活动品牌", index = 3)
    private String prizeBrand;

    /**
     * 奖品名称
     */
    @ColumnWidth(16)
    @ExcelProperty(value = "奖品名称", index = 4)
    private String prizeName;

    /**
     * 活动起止时间
     */
    @ColumnWidth(30)
    @ExcelProperty(value = "活动起止时间", index = 5)
    private String startAndEndTime;

    /**
     * 活动开始时间
     */
    @ExcelIgnore
    private Date startTime;

    @ExcelIgnore
    private Integer tenantId;

    /**
     * 活动结束时间
     */
    @ExcelIgnore
    private Date endTime;
    /**
     * 活动状态
     */
    @ColumnWidth(16)
    @ExcelProperty(value = "状态", index = 6)
    private String status;

    /**
     * 创建时间
     */
    @ColumnWidth(22)
    @ExcelProperty(value = "活动创建时间", index = 7, converter = DateStringConverter.class)
    private Date createdTime;
}
